package com.tdam2011.grupo04;

import java.util.Date;

import com.tdam2011.grupo04.entidades.Accion;
import com.tdam2011.grupo04.entidades.EmailContacto;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Sql extends SQLiteOpenHelper{

	static final String dbName = "TDAM";
	
	static final String accionTable = "Accion";
	static final String colAccionID = "accionID";
	static final String colEstado = "estado";
	static final String colTipo = "tipo";
	static final String colFecha = "fecha";
	
	static final String mensajeWebTable = "MensajeWeb";
	static final String colMensajeWebID = "mensajeWebID";
	static final String colMensajeWebFecha = "fecha";
	static final String colMensajeWebUsuario = "usuario";
	static final String colMensajeWebTipo = "tipo";
	static final String colMensajeWebMensaje = "mensaje";
	static final String colMensajeWebEstado = "estado";
	
	static final String emailTable= "Email";
	static final String colEmailID= "emailID";
	static final String colEmailDestino= "emailDestino";
	static final String colEmailFecha= "emailFecha";
	
	private final int MENSAJE_NO_LEIDO= 0;
	private final int MENSAJE_LEIDO= 1;
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE " +accionTable+ " ("
				+colAccionID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "
				+colEstado+ " TEXT, " 
				+colTipo+ " TEXT, " 
				+colFecha+ " TEXT)");
		
		db.execSQL("CREATE TABLE " +mensajeWebTable+ " ("
				+colMensajeWebID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "
				+colMensajeWebFecha+ " TEXT, " 
				+colMensajeWebUsuario+ " TEXT, "
				+colMensajeWebTipo+ " TEXT, " 
				+colMensajeWebMensaje+ " TEXT, "
				+colMensajeWebEstado+ " TEXT)");
		
		db.execSQL("CREATE TABLE " + emailTable + "("
				+colEmailID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
				+colEmailDestino + " TEXT, "
				+colEmailFecha + " TEXT)");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE IF EXISTS "+accionTable);
		db.execSQL("DROP TABLE IF EXISTS "+mensajeWebTable);
		db.execSQL("DROP TABLE IF EXISTS "+emailTable);
		onCreate(db);
	}
	
	public Sql (Context context)
	{
		super(context, dbName, null, 1);
	}
	
	
	public void addAccion(Accion accion)
	{
		SQLiteDatabase db= this.getWritableDatabase();
		ContentValues cv=new ContentValues();
		cv.put(colEstado, accion.getEstado());
		cv.put(colTipo, accion.getTipo());
		cv.put(colFecha, accion.getFecha());
		db.insert(accionTable, colAccionID, cv);
		db.close();
	}
	 
	public Cursor getAllAccion()
	{
		SQLiteDatabase db=this.getReadableDatabase();
		Cursor cur=db.rawQuery("SELECT "+colAccionID+" AS _id, "+colEstado+", "+colTipo+", "+colFecha+" from "+accionTable,new String [] {});
		return cur;
	}
	
	public void addMensajeWeb(com.tdam2011.grupo04.entidades.Mensaje mensajeWeb, int tipo){
		SQLiteDatabase db= this.getWritableDatabase();
		ContentValues cv=new ContentValues();
		cv.put(colMensajeWebFecha, new Date().toString());
		cv.put(colMensajeWebUsuario, mensajeWeb.getNombreContacto());
		cv.put(colMensajeWebTipo, tipo);
		cv.put(colMensajeWebMensaje, mensajeWeb.getCuerpoMensaje());
		cv.put(colMensajeWebEstado, MENSAJE_NO_LEIDO);
		db.insert(mensajeWebTable, colMensajeWebID, cv);
		db.close();
	}
	
	public Cursor getAllMensajesWeb(){
		SQLiteDatabase db=this.getReadableDatabase();
		Cursor cur=db.rawQuery(
				"SELECT * from " +mensajeWebTable,
			new String [] {});
		return cur;
	}
	
	public void addEmail(EmailContacto email){		
		SQLiteDatabase db= this.getWritableDatabase();
		ContentValues cv=new ContentValues();
		cv.put(colEmailDestino, email.getValue());
		cv.put(colEmailFecha, email.getFechaEnvio());
		db.insert(emailTable, colEmailID, cv);
		db.close();
	}
	
	public Cursor getAllEmail(){
		SQLiteDatabase db=this.getReadableDatabase();
		Cursor cur=db.rawQuery(
				"SELECT "+colEmailID+", "+colEmailDestino+", "+colEmailFecha+" from " +emailTable,
			new String [] {});
		return cur;
	}
}
